/*JavaSE基础：核心语法，C/S架构 早期软件 Client 客户端 Server服务器

   JavaMe：手机软件 （Android）

   JavaEE：软件应用开发 B/S架构 中期软件 Browser 浏览器 Server服务器



  JavaSE基础：基础语法 JavaOOP（面向对象） JavaAPI(核心语法)

1.程序入口【主方法】，输出语句

2.注释3种 程序员查看 注释比例：78%

单行注释          注释一行使用
/*


    /**///多行注释      // 注释多行使用

// /***/文档注释      解释类名或者方法名使用

 /*3.变量：（Java是高级语言）   存数—运算【改数】

    语法：数据类型  标识符=字面量（死值）

    写法：存一个整数    int a=1；

            4.数据类型：Java有多少种数据类型？     2种√

            基础数据类型：8种             引用类型：等号右侧出现new**

     整数型 int（默认：常用） byte（偶尔用） short（不常用） long（银行）
            /*
            byte 字节 1KB=1024字节 作用：传输数据，IO流
            定义long数据 字面量加L/l
            long time+12345L;
             */
  /* 浮点型 double（默认：常用 双精度 8字节 取小数点后15位有效数）
          float（不常用     单精度 4字节 取小数点后6位有效数）
        知识点：反码 补码
    布尔型 boolean 用于逻辑判断 true flase
    字符型 char 存一个字符，使用单引号表示
5.数据联系转换【强制类型转换/显示类型转换|隐式类型转换】
   char->int->long->float->double(正方向:强制类型转换)
byte
   short<-int<-long<-float<-double(反方向:强制类型转换)
    /制类型转换语法：小类型=（小类型）大类型
6.标识符：给Java变量、类、方法、项目、包起名
    //标识符命名规则
    /*
    ①可以由字母、数字、_和$组成
    ②首字母不允许使用数字
    ③Java大小写敏感
    ④驼峰命名【组合单词：ClassDemo】,除变量名：setAge,包名全小写
    ⑤Java关键字不允许作为标识字符进行使用，编辑器：有颜色
     */
//7.运算符
    /*
    ①按照操作划分
    基础运算符：+ — * /   % 求模 ++  --
    前++：先运算后赋值
    后++:先赋值后运算
  int i=1;
  int j=i++ + i++ + i++；

  拼接运算符：字符串+基础数据类型
    ②按照条件划分:【进行比较操作 返回值：boolean】
    关系运算符：> < >= <= == !=
    逻辑运算符：&& 并且 短路与 有一个为假，结果为假，除非全对
              || 或者 短路或 有一个为真，结果为真，除非全错
              ！ 取反  打桩：程序启动，关闭状态 例如：flag!=true；
     ③根据结果划分
     赋值运算值：= += -= *= /= %=
     int a=a+1; 简写 int a+=1
8.流程控制语句
 ①顺序语句：按照从上至下执行
  ②分支语句：根据条件，选择执行某段代码
  if语句语法：
      if（逻辑条件：boolean）{
      语句块1；
      }else{
      语句块2
      }
  ③循环语句：
  while循环：死循环，循环次数不固定
  语法while（逻辑条件）{
  语句块
  }
  do while循环：特定需求：先执行一次然后进行判断
  语法：do{语句块}while（逻辑条件）；
  for循环：循环次数固定，作用：【遍历】迭代数据使用
  语法：for（初始值；条件判断；迭代值){语句块}
      for(int i=0;i<0;i++){}
      for循环执行顺序：①初始值②条件判断③语句块④迭代值
      循环可以套循环  常见：for套for、while(true){套for}
      实际开发for套for for套if
9.引用类型：等号右侧出现new 【数组】
数组：相同数据的集合
定义数组:数组类型【数组长度】
int arr=new int[10];定义整数类型数组，空间长度10，下标0开始
声明并赋值：int[] arr={1,2,3}
声明并初始化：int[] arr=new int[]{1,2,3}
数组的迭代（遍历):输出数组内所有元素
普通for
增强for
工具类√
3.数组扩容：Java数组长度是固定的，数组对象创建，长度不能改变
           int[] arr=new int[4];长度4个，不可改变
           Arrays工具类 提供创建数组副本的方法
 10.函数：方法  method（重点）
 封装某种特定功能，单模块调用
 方法定义：修饰符 /-static:静态-/ 返回值/-空的，数据类型-/ 方法名（形参：16个）{
         1.如果返回值是void空的，直接输出语句
         2.数据类型，返回值return 对应数据类型


     语句块；
     }
     例子：
     1.public static void method（int i，int j）{
     system.out.println（{“输出静态方法”）
     }
       2.public static String method(int i,int j){
       teturn "输出语句快"
       }
     方法注意：静态方法不能套方法
     修饰符：控制方法访问范围，控制类、控制构造器
     修饰符            本类          同包        子类       不同包
     public公共的      √              √          √          √
     protected保护的   √              √          √          ×
     默认的            √              √          ×          ×
     private私有的     √              ×          ×          ×
------------------------------------------------------基础语法   Over
------------------------------------------------------面向对象   JavaOOP   编写思路
1.Java面向对象方式进行开发：封装、继承、多态、抽象
2.创建对象：Java万物皆对象，对象皆可new！    内存
2.1按照面向对象的方式给包起名： 域名、公司名，项目名、模块名
                   例如：com.tedu.review.day02
                   网页：www.baidu.com
包 ：区分类，不同包， 存相同类【文件夹：包名小写】
2.2  类，抽象类、接口
3.JDK1.8直接决定Java语法标准的工具包
  JDK=JRE+JVM+其他
  JRE（运行环境）Java运行时类库
  特点：外部库--内置类库，创建项目存在
  JVM（虚拟机）编写xxx.java文件由虚拟机转编译xxx.class字节码文件
  特点：跨平台，xxx.class文件可以在任何操作系统
  4.什么是类，了解内存创建过程【栈、堆、方法区】？
面向对象：类
类包括：属性|成员变量---功能：传输数据   写法：修饰符、数据类型  属性名
       方法|成员方法--功能：实现逻辑    写法：函数写法一致
       句柄|构造器|构造方法--功能：初始化【赋值操作】  写法：修饰符 类（）{}
5.面向对象特性：封装目的：实现信息隐藏，保护某些属性以及方法不被污染
【重要】JavaBean   实体类   要素：1.属性被封装
                               2.设置set和get方法
                               3.默认初始化构造器【建议：调toString（）查看属性值】
                               4.【实体类---字节码---传输数据】实现接口，IO流
6.内部类：外部类套内部类，外部类可以使用内部类的属性方法
匿名内部类：1.实现接口 实现抽象类 没有名字的类，作用于接口和抽象
          简化接口类和抽象类的代码【重点】
成员内部类：2.又叫普通内部类，内部类相当于外部类的成员变量
静态内部类：3.直接访问、不可以使用外部类的普通属性[可以使用静态属性]
            静态内部类使用外部类的属性，属性一定是静态属性
方法内部类：4.内部类定义在方法中，范围小，使用麻烦！考试专用
            修饰符：必须是默认
掌握：以上内部类编写方法【知道什么是内部类】，创建以上内部类的方法【创建内部类】
7.面向对象特性：继承     类与类    子类    extends   父类{}
①Java中只允许单继承，可以多层继承   【一脉单传】
   单继承：继承一个父亲
   多层继承：依次进行继承
   爷爷 extends 祖宗{}
   父类 extends 爷爷{}
   子类 extends 父类{}
②子类可以继承父类的属性及方法，父类中存在私有属性的时候无法继承！ set和get方法解决
③继承构造器，子类继承父类：默认调用父类构造方法，在调用子类构造器
  子类构造器中默认存在super（）:调用父类的构造器
④重写和重载【重要】   针对类中方法，继承关系!区别：定义、使用！
⑤继承关键字-->    extends    类与类      super-----使用方法一致
                  【没有继承也可以使用】   this-----使用方法一致
                  final关键字  最终
8.面向对象特性：多态   继承之后实现方法互通   【普通类、抽象类、接口类】
数据类型：基本数据类型【存在强制类型转换】
        引用类型【存在向下造型】
向上造型：父类对象 引用=new 子类对象（）；【创建对象中常见】
        使用：普通类、抽象类、接口类，子类一定具备覆盖父类的方法【重写】
向下造型：1.父类对象 引用=new 子类对象（）；
        2.父类对象 引用=（子类对象）向上造型引用；
 要求：识别创建对象【多态】、使用多态方法调用【覆盖】
 关键字：instanceof  比较引用类型     对象引用=对象
        判断一个对象是否是另外一个对象的实例（有没有关系：对象是否造型）
    使用：一般与if搭配，返回值类型boolean
  9.面向对象特征：抽象---抽象类+抽象方法
  抽象类的特点：<补充>
     抽象类=类：成员变量+构造器+成员方法
      成员变量：既可以是变量，也可以时变量
      构造方法：有
               用于子类访问父类的数据【父类默认初始化】
      成员方法：既可以是抽象也可以是非抽象的

      抽象类中方法的特性：
      A:抽象方法---目的：强制子类做的事情【子类一定重写】
      B:非抽象方法---目的：子类继承的事情，提高代码复用性【与普通父类一样】
抽象类的特点<补充2>
abstract不能和哪些关键字共存【测试：抽象方法】
  private   冲突
  final     冲突
  static    无意义


  10.接口---[普通类>抽象类]>接口类：interface
  *************JavaAPI高级---JDBC（Java链接数据库）***************
  高级程序员、架构师--会写接口 ---入门使用接口【使用注意事项】
  功能：【理解：插排--提供功能，但是不会直接使用】
  提供功能，不会直接创建接口【匿名内部类/表达式】
  接口类=全局常量+抽象方法
  静态+最终=全局常量    定义：修饰符 static final  数据类型 PI；
                      理解：通过类直接调用的属性
  定义：修饰符  interface 接口名{}

  模拟定义接口案例：插排--Insert【接口】
                  线--LINE=100    ------全局变量
                  插口-jack       ------抽象方法
  接口的实例化【创建对象】问题：
  实现【子】类     【实现等同于继承】implement      接口类
  使用面向对象：多态   创建对象：接口   引用=new  实现类（）；
  接口使用注意事项：1.一个子类可以同时继承抽象类并且实现接口
                 语法：子类 extends 抽象类 implement 接口{}
                 2.接口没有构造器  一个接口能继承抽象类  接口可以继承接口
                 接口可以继承多个接口    实现类可以实现多个接口    【Java只允许单继承，可以多实现】
                 语法：子类  implement 接口1，接口2，接口3{}
                 注意：实现类实现了多个接口，多个接口实现方法必须全部实现并重写
                 3.普通类、抽象类、接口类关系
                                      关系                    特点
                 类与类：             继承关系            单继承，可以多层继承
                                                        单继承：继承一个父类
                                                        多层继承：从祖宗依次继承
                 类与抽象类：          继承关系            单继承，不可以多继承
                                                        多继承，继承多个父类
                 抽象类与抽象类：      继承关系             单继承，可以多层继承
                 类与接口：           实现关系             单实现，可以多实现
                                                         继承同时实现多个
                 接口与接口：         继承关系              单继承，也可以多层继承
作业：描述抽象类与接口类的区别？
1.接口使用interface修饰    抽象类使用abstract修饰
2.一个子类只能继承一个抽象类，但能实现多个接口
3.抽象类可以有构造方法，接口没有构造方法
4.抽象类可以有普通成员变量，接口没有普通成员变量
5.抽象类可以有静态代码块，而接口不能有
6.接口用implements实现，抽象类用extends







   11.Object类
  ---------------JavaOOP over
  ---------------JavaAPI   查帮助文档      聊天室   C/S架构软件
  ---------------WEB(JS 网页=小程序)         B/S架构软件
     */
public class 回顾重点知识点{
}

